package com.dkd.sbtz.service;

import java.util.List;
import com.dkd.sbtz.domain.Sbtype;
import com.dkd.sbtz.domain.vo.sbtype.SaveTypeRelationsReq;
import com.dkd.sbtz.domain.vo.sbtype.TypeRelationsVO;

/**
 * 设备类型Service接口
 * 
 * @author xzj
 * @date 2025-09-02
 */
public interface ISbtypeService 
{
    /**
     * 查询设备类型
     * 
     * @param typeCode 设备类型主键
     * @return 设备类型
     */
    public Sbtype selectSbtypeByTypeCode(String typeCode);

    /**
     * 查询设备类型列表
     * 
     * @param sbtype 设备类型
     * @return 设备类型集合
     */
    public List<Sbtype> selectSbtypeList(Sbtype sbtype);

    /**
     * 新增设备类型
     * 
     * @param sbtype 设备类型
     * @return 结果
     */
    public int insertSbtype(Sbtype sbtype);

    /**
     * 修改设备类型
     * 
     * @param sbtype 设备类型
     * @return 结果
     */
    public int updateSbtype(Sbtype sbtype);

    /**
     * 批量删除设备类型
     * 
     * @param typeCodes 需要删除的设备类型主键集合
     * @return 结果
     */
    public int deleteSbtypeByTypeCodes(String[] typeCodes);

    /**
     * 删除设备类型信息
     * 
     * @param typeCode 设备类型主键
     * @return 结果
     */
    public int deleteSbtypeByTypeCode(String typeCode);

    int replaceChildren(String parentType, List<String> childTypes);

    void bindParent(String childType, List<String> parentTypes);


    TypeRelationsVO getRelations(String typeCode);

    void saveRelations(SaveTypeRelationsReq req);


    public int updateDeviceCount(Sbtype sbtype);
}
